package com.example.web.office_file.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.web.office_file.entity.OfficeFile;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author LS
 * @since 2024-03-05
 */
public interface IOfficeFileService extends IService<OfficeFile> {

    /**
     * 分页查询用户文件（文件夹优先）
     * @param currentPage 当前页
     * @param pageSize 总页数
     * @param curDir 当前目录
     * @param op (1文件，2回收站)
     */
    Page<OfficeFile> getFileByPage(Integer currentPage, Integer pageSize, String curDir, Integer op);

    /**
     * 统计某个文件夹的大小
     * @param id id
     */
    Long countSize(Integer id);

    /**
     * 创建目录
     */
    String createDir(Map<String, String> map);

    /**
     * 文件上传
     * @param uploadFile 文件
     * @param curDir 当前目录
     */
    Boolean upload(MultipartFile uploadFile, String curDir,String creator);

    /**
     * 下载文件
     *
     * @param id id
     * @param request request
     * @param response response
     */
    Boolean download(Integer id, HttpServletRequest request, HttpServletResponse response);

    /**
     * 根据文件名查询
     */
    Page<OfficeFile> findByFileNameLike(Integer pageNum,Integer pageSize,String fileName);

}
